package main

import "fmt"

type Robot string

func (r Robot) MakeSound() {
	fmt.Println("Beep beep!!")
}

func (r Robot) Walk() {
	fmt.Println("Powering legs")
}

type NoiseMaker interface {
	MakeSound()
}

func main() {
	// 定义接口类型的变量，将满足接口类型的值赋值给它
	var noiseMaker NoiseMaker = Robot("Botco Ambler")
	noiseMaker.MakeSound()
	// 类型断言，取回具体的类型
	var robot Robot = noiseMaker.(Robot)
	// 调用在具体类型上的方法，而不是接口
	robot.Walk()

}
